import glob


# glob.glob(pathname)：根据指定的模式匹配文件路径，并返回匹配的路径列表
def globTest():
    # 匹配当前目录下所有的txt文件
    txt_files = glob.glob("/P1_python_基础/c1_基础/**/*.py", recursive=True)
    print(txt_files)

    # 匹配指定目录下的所有py文件
    py_files = glob.glob("path/to/directory/*.py")
    print(py_files)


# glob.iglob(pathname)：返回一个迭代器，逐个匹配文件路径，适用于大量文件的情况
def iglobTest():
    # 逐个匹配当前目录及其子目录下的所有txt文件
    txt_files = glob.iglob("**/*.py", recursive=True)
    for file in txt_files:
        print(file)


# glob.escape(pathname)：对指定的路径进行转义，使其可以正确匹配特殊字符
def escapeTest():
    # 对指定路径进行转义，使其可以正确匹配特殊字符
    path = glob.escape("my_dir[1].txt")
    files = glob.glob(path)
    print(files)


# glob.has_magic(pathname)：检查指定的路径是否包含通配符
def has_magicTest():
    # 检查指定路径是否包含通配符
    path = "path/*/1-文件操作.py"
    has_magic = glob.has_magic(path)
    print(has_magic)


# glob.glob_recursive(pattern)：在当前目录及其子目录下递归匹配符合模式的文件路径
def glob_recursiveTest():
    # 在当前目录及其子目录下递归匹配所有的py文件
    py_files = glob.glob_recursive("**/*.py")
    print(py_files)


if __name__ == '__main__':
    globTest()
